//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.HashSet;
//import java.util.Scanner;
//
//class Product {
//    private String id;
//    private String name;
//    private double price;
//    private int stock;  // 库存数量
//
//    public Product(String id, String name, double price, int stock) {
//        this.id = id;
//        this.name = name;
//        this.price = price;
//        this.stock = stock;
//    }
//
//    public String getId() { return id; }
//    public String getName() { return name; }
//    public double getPrice() { return price; }
//    public int getStock() { return stock; }
//
//    public void reduceStock(int quantity) {
//        if (quantity <= stock) {
//            stock -= quantity;
//        }
//    }
//}
//
//class PurchasedItem {
//    private Product product;
//    private int quantity;
//
//    public PurchasedItem(Product product, int quantity) {
//        this.product = product;
//        this.quantity = quantity;
//    }
//
//    public Product getProduct() { return product; }
//    public int getQuantity() { return quantity; }
//
//    public double getTotalPrice() {
//        return product.getPrice() * quantity;
//    }
//}
//
//public class Main {
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        HashMap<String, Product> productMap = new HashMap<>();
//        HashSet<String> productIds = new HashSet<>();
//        ArrayList<PurchasedItem> shoppingCart = new ArrayList<>();
//        String cashierId = "2025123456";
//
//        // 1. 管理员录入商品
//        System.out.println("管理员录入商品，输入'end'结束录入");
//        while (true) {
//            System.out.print("请输入商品信息（编号 名称 单价 库存）：");
//            String line = scanner.nextLine().trim();
//            if (line.equalsIgnoreCase("end")) {
//                if (productMap.size() < 3) {
//                    System.out.println("商品种类不足3种，请继续录入！");
//                    continue;
//                } else {
//                    break;
//                }
//            }
//
//            String[] parts = line.split("\\s+");
//            if (parts.length != 4) {
//                System.out.println("格式错误，请重新输入！");
//                continue;
//            }
//
//            String id = parts[0];
//            String name = parts[1];
//            double price;
//            int stock;
//            try {
//                price = Double.parseDouble(parts[2]);
//                stock = Integer.parseInt(parts[3]);
//            } catch (NumberFormatException e) {
//                System.out.println("单价或库存格式错误，请重新输入！");
//                continue;
//            }
//
//            if (productIds.contains(id)) {
//                System.out.println("商品编号已存在，请勿重复录入！");
//                continue;
//            }
//
//            Product p = new Product(id, name, price, stock);
//            productMap.put(id, p);
//            productIds.add(id);
//            System.out.println("商品录入成功！");
//        }
//
//        // 2. 客户购买商品
//        System.out.println("\n客户购物，输入商品编号和购买数量，输入'end'结算");
//        while (true) {
//            System.out.print("请输入购买商品编号和数量：");
//            String line = scanner.nextLine().trim();
//            if (line.equalsIgnoreCase("end")) {
//                break;
//            }
//            String[] parts = line.split("\\s+");
//            if (parts.length != 2) {
//                System.out.println("格式错误，请重新输入！");
//                continue;
//            }
//
//            String buyId = parts[0];
//            int buyQty;
//            try {
//                buyQty = Integer.parseInt(parts[1]);
//            } catch (NumberFormatException e) {
//                System.out.println("数量格式错误，请重新输入！");
//                continue;
//            }
//
//            if (!productMap.containsKey(buyId)) {
//                System.out.println("商品编号不存在！");
//                continue;
//            }
//
//            Product product = productMap.get(buyId);
//            if (buyQty <= 0) {
//                System.out.println("购买数量必须大于0！");
//                continue;
//            }
//
//            if (buyQty > product.getStock()) {
//                System.out.println("库存不足，当前库存：" + product.getStock());
//                continue;
//            }
//
//            // 加入购物车，减少库存
//            shoppingCart.add(new PurchasedItem(product, buyQty));
//            product.reduceStock(buyQty);
//            System.out.println("添加购物车成功！");
//        }
//
//        // 3. 打印购物小票
//        System.out.println("\n========== 购物小票 ==========");
//        System.out.printf("%-10s %-10s %-8s %-8s %-8s%n", "编号", "名称", "单价", "数量", "小计");
//        double totalPrice = 0.0;
//        for (PurchasedItem item : shoppingCart) {
//            Product p = item.getProduct();
//            int qty = item.getQuantity();
//            double subTotal = item.getTotalPrice();
//            System.out.printf("%-10s %-10s %-8.2f %-8d %-8.2f%n",
//                    p.getId(), p.getName(), p.getPrice(), qty, subTotal);
//            totalPrice += subTotal;
//        }
//        System.out.println("------------------------------");
//        System.out.printf("总价：%.2f 元%n", totalPrice);
//        System.out.println("收银员学号：" + cashierId);
//        System.out.println("==============================");
//
//        scanner.close();
//    }
//}
import java.util.Scanner;
import java.util.TreeSet;
import java.util.Objects;

class Student implements Comparable<Student> {
    private String id;
    private String name;
    private int javaScore;
    private int osScore;
    private int totalScore;

    public Student(String id, String name, int javaScore, int osScore) {
        this.id = id;
        this.name = name;
        this.javaScore = javaScore;
        this.osScore = osScore;
        this.totalScore = javaScore + osScore;
    }

    @Override
    public int compareTo(Student other) {
        if (this.totalScore != other.totalScore) {
            return other.totalScore - this.totalScore; // 总成绩降序
        }
        if (this.javaScore != other.javaScore) {
            return other.javaScore - this.javaScore; // Java成绩降序
        }
        if (this.osScore != other.osScore) {
            return other.osScore - this.osScore; // OS成绩降序
        }
        return this.id.compareTo(other.id); // 学号升序
    }

    @Override
    public String toString() {
        return String.format("学号：%s，姓名：%s，Java成绩：%d，OS成绩：%d，总成绩：%d",
                id, name, javaScore, osScore, totalScore);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Student)) return false;
        Student s = (Student) o;
        return id.equals(s.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id);
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        TreeSet<Student> students = new TreeSet<>();

        System.out.println("请输入5个学生的信息：学号 姓名 Java成绩 OS成绩（空格分隔）");
        for (int i = 0; i < 5; i++) {
            System.out.printf("第%d个学生：", i + 1);
            String id = scanner.next();
            String name = scanner.next();
            int javaScore = scanner.nextInt();
            int osScore = scanner.nextInt();

            Student s = new Student(id, name, javaScore, osScore);
            students.add(s);
        }

        System.out.println("\n排序后的学生列表：");
        for (Student s : students) {
            System.out.println(s);
        }
        scanner.close();
    }
}
